package minix.pages;

import minix.entities.Bilde;
import minix.entities.Profil;

import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.hibernate.annotations.CommitAfter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.security.core.context.SecurityContextHolder;

/**
 * Start page of application pasienlosjen_web.
 */
public class NyProfil {
	@Property
	private Profil profil;
	@Property
	private Form profilForm;
	@Property
	private Bilde bilde;
	@Inject
	private Session session;
	// @InjectComponent
	// private Filopplaster filopplaster;
	private String brukernavn;

	void onActivate() {
		brukernavn = SecurityContextHolder.getContext().getAuthentication().getName();
		profil = (Profil) session.createCriteria(Profil.class).add(Restrictions.eq("brukernavn", brukernavn))
				.uniqueResult();
		if (profil == null) {
			profil = new Profil();
			profil.setBrukernavn(brukernavn);
			profil.setOverskrift(brukernavn);
			profil.setNominert(false);
			profil.setMedlem(true);
		}
		// filopplaster.setProfil(profil);
	}

	Object onActivate(Long id) {
		brukernavn = SecurityContextHolder.getContext().getAuthentication().getName();
		if (id != null) {
			profil = (Profil) session.get(Profil.class, id);
			if (brukernavn.equals(profil.getBrukernavn()))
				return true;
		}

		profil = null;
		return Profiler.class;
	}

	public Object onValidateFromProfil() {
		return true;
	}
    @Log
	@CommitAfter
	public Object onSubmitFromProfilForm() {
		session.saveOrUpdate(profil);
		return Profiler.class;
	}
}
